mysql数据库常用命令 |
您所在的位置:网站首页 › mysql 指令 › mysql数据库常用命令 |
基础 定义及特点 定义: 用于存储数据的软件 特点: 表是数据存储的核心体现数据库常见分类 1、RDMS:(Relational Database Management System)关系型数据库系统 特征: 依据关系模型创建的数据库,把数据保存在不同的表中,表与表存在着某些关系。 2、非关系型数据库 非关系型数据库也叫nosql数据库,全称notonlysql。通常数据以对象的形式存储在数据库中,不固定结构,例如列模型,键值对模型。二、启动 rpm -qa|grep -i mysql 查看mysql是否安装 systemctl status firewalld.service 查看mysql的状态(mysqld最后的d是 daemon守护进程的意思) systemctl start mysqld 启动mysql systemctl stop mysqld 关闭mysql systemctl restart mysqld 重启mysql1、进入数据库设置密码: grant all privileges on *.* to 'root'@'localhost' identified by '123456'; 操作语句 show databases; 显示所有的数据库名字 create database XX; 创建一个数据库名字为XX drop database XX; 删除为XX名字的数据库 use XX; 进入到XX数据库 (显示Database changed 表示已进入) show tables; 查看当前数据库里面有哪些表 desc XX; 查看XX这个表的结构 可以看到字段名称,数据类型,约束,备注 field ==》字段 type ==》数据类型 null ==》是否可以为空 key ==》primary key主键 default ==》默认值约束 Extra ==》额外的备注、auto_increment自增长约束 三、创表操作 create table+表名(字段1名称,数据类型,约束,字段2名称,数据类型,约束); drop table if exists goods; -- 如果表存在, 执行删除操作 -- drop table : 删表 -- if exists : 如果存在 create table goods(goodsName varchar(20),price decimal(4, 2));数据类型 int 存储整数 范围(-2147483647,2147483647) bigint 存储整数 范围大于2147483647 unsigned 无符号 无符号范围(0 ~ 4294967295) drop table if exists goods; 四、表结构操作 alter table +表名 rename +新表名; 修改表名 alter table +表名 change +原字段名 +新字段名 数据类型,约束; 修改表字段 alter table+表名 add +字段名 数据类型 约束 first; 添加表字段,并放在第一个字段前 first 第一,前面 alter table +表名 add +字段名 数据类型 约束 after +字段名; 添加表字段,并放到某个字段后 after 在·····之后 alter table +表名 add(字段1 数据类型,字段2 数据类型); 同时添加两个字段,默认添加到字段最后 alter table xx表drop xxx字段; 删除xx表的xxx字段 alter table +表名 drop 字段1,drop 字段2; 删除两个字段 alter table 表名 modify 字段1 字段类型 after 字段2; 移动字段 alter table 表名 drop primary key; 删除主键约束 (首先要把自增长删除) create table goods(id int unsigned primary key auto_increment, goodsName varchar(20),price decimal(6,2),num int,company varchar(20),remark varchar(30)); -- unsigned : 无符号 -- primary key : 主键(唯一,不为空) -- auto_increment : 自动递增 -- 直接替换字段名使用皆可 char 存储字符 例:char(10)可能占用了10个字节 注意:char(20) char(M) M指最大能存储20个字符,不足的用空格补齐 varchar(10) 存储字符 varchar(10)表示最大存储20个字符,实际是多少个字符就是多少个 date 建表的时候在日期的后面接date,并且加引号 datetime 日期时间 范围(1000-01-01 00:00:00 ~ 9999-12-31 23:59:59) decimal 小数 decimal(5,2) 表示共存5位数,小数占2位,整数占3位 float 默认保存6位精度的数字(包括小数位和整数位) 例:float(20,2)指小数点后面2位 约束条件 primary key 主键约束,物理上存储的顺序 说明:非空唯一,用于唯一标识对应的记录。类似身份证、用来约束主键对应的值不能重复、也不能为空 foreign key 外键约束 在实际开发中,很少会使用到外键约束,会极大的降低表更新的效率 not null 非空约束 说明:表示当前字段对应的值不能为空 default 默认值约束 说明:默认给字段指定默认值 例:当往这个表当中插入数据的时候不给phone字段插入新的值、则默认用15366667777 auto_increment 自增长约束 说明:作用在整数类型,字段默认从1开始自增 unique 唯一 说明:此字段的值不允许重复 查询语句 select * from +表名; 查询表中的数据 *号代表的是所有 select 字段 from +表名; 查询某个字段的数据 select 字段1,字段2 from +表名 查询多个字段数据 select * from +表名 where 字段=值; 条件查询、查询满足某个条件的所有数据(where后面接满足的条件) select * from +表名 where 字段!=值; 查询不满足某个条件的所有数据 select * from +表名 where 条件1 and 条件2; 查询同时满足多个条件数据(and关键字左右的两个条件必须同时满足) select * from +表名 where 条件1 or 条件2; 查询满足至少1个条件的数据 select * from +表名 where 字段 between m and n 查询一个条件范围内的数据(between...and...指定一个范围) select * from +表名 where 字段 not in(值1,值2,值3) 查询字段不满足在指定集合中的数据 select * from +表名 where 字段 in(值1,值2,值3) 查询字段满足在指定的集合中的数据 select * from +表名 where 字段 is null; 查询字段值为空的数据 select * from +表名 where 字段 is not null; 查询字段不为空的数据 select * from +表名 where 字段 like “%值%” 查询某个字段模糊匹配成功的数据 like:像 %用于匹配字段开头和结尾 select * from +表名 where 字段 limit m,n; 查询限定的数量的数据 select * from +表名 order by 字段 desc 查询的数据根据某个字段从大到小排序 select * from +表名 order by 字段 asc 查询的数据根据某个字段从小到大排序 select * from +表名 group by 字段; 查询的数据根据某个字段进行分组 select * from +表名 group by 字段 having 条件; 查询的数据根据某个字段进行分组再条件过滤(可以直接跟聚合函数) having跟在groupby后面,作用相当于where select class,sum(math) as b from student group by class having b>100; as取别名 插入数据及修改数据 插入 insert into 表名 values(...) insert into test(id,score,name,phone,time)values(1,89.88,'xiaowang',15355556666,"2020-10-8"); insert into test values(2,78.456,'xiaowang',15344445555,'2020-10-8'); insert into test(id,score,name,phone,time)values(3,78.456,'xiaowang',15344445555,'2020-10-8'),(4,78.456,'xiaowang',15344445555,'2020-10-8'); insert into test values(5,78.456,'xiaowang',15344445555,'2020-10-8'),(6,78.456,'xiaowang',15344445555,'2020-10-8'),(7,78.456,'xiaowang',15344445555,'2020-10-8'); insert into test(id)values(8);修改 update +表名 set 字段名=值 where 条件 删除操作 Truncate、Delete、Drop 的区别 1、Delete 删除数据时,即使删除所有数据,其中的自增长字段不会从1开始 2、Truncate 删除数据时,其中的自增长字段恢复从1开始 3、Drop 是删除表,所有数据和表结构都删掉总结 在速度上,drop > truncate > delete 如果想删除部分数据用 delete,注意带上 where 子句 如果想删除表,用 drop 如果想保留表而将所有数据删除,自增长字段恢复从1开始,用 truncate drop +表名 删除表数据和表结构,释放空间 truncate +表名 只是删除表的数据,释放空间 delete from test1; 删除表数据,不删除表结构 ==》可以指定表字段值删除 MySQL 操作日志 记录 MySQL 所有的操作日志(包括增删改查),不过它会耗费数据库5%-10%的性能,所以一般没特别需要时不打开此功能,一般在查找问题时才打开,完成后及时关闭。 show variables like 'general%'; -- 查看日志功能是否开启 set global general_log = 1; -- 开启操作 set global general_log = 0; -- 关闭操作 -- 注意: 日志功能使用完成, 需要记得马上关闭, 避免影响数据库性能!!!!!! 注意 : MySQL 自带日志功能, 但是开启日志功能, 极其消耗数据库性能, 因此默认情况下是不开启的 日志目录 cat /usr/local/mariadb/var/localhost.log 聚合函数 select count(*) from +表名 统计查询数据的数量 select sum(字段) from +表名 查询某个字段求和 select avg(字段) from +表名 查询某个字段平均值 select distinct(字段) from +表名 对某个字段进行去重 select min(字段) from +表名; 查询某个字段最小值 select max(字段) from +表名; 查询某个字段最大值 |
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |